﻿using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.UI.Common;
using Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Cliente.Cliente;
namespace Sinacor.UI.Bovespa.Ordens.Communication.Translator
{
    public class TranslatorEnumTipoOrdem
    {
        public void TranslateEnum(TipoOrdem? from, out Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem? to)
        {
            to = null;

            switch (from)
            {
                case TipoOrdem.Mercado:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Mercado;
                    break;
                case TipoOrdem.Casada:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Casada;
                    break;
                case TipoOrdem.Administrada:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Administrada;
                    break;
                case TipoOrdem.Discricionaria:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Discricionaria;
                    break;
                case TipoOrdem.Limitada:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Limitada;
                    break;
                case TipoOrdem.Financiamento:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Financiamento;
                    break;
                case TipoOrdem.OnStop:
                    to = Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.OnStop;
                    break;
            }
        }

        public void TranslateEnum(Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem? from, out TipoOrdem? to)
        {
            to =null;

            switch (from)
            {
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Mercado:
                    to = TipoOrdem.Mercado;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Casada:
                    to = TipoOrdem.Casada;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Administrada:
                    to = TipoOrdem.Administrada;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Discricionaria:
                    to = TipoOrdem.Discricionaria;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Limitada:
                    to = TipoOrdem.Limitada;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Financiamento:
                    to = TipoOrdem.Financiamento;
                    break;
                case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.OnStop:
                    to = TipoOrdem.OnStop;
                    break;
            }
        }


        public void TranslateEnum(List<Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem> pfrom, out List<TipoOrdem> pTo)
        {
            List<TipoOrdem> retorno = new List<TipoOrdem>();
            TipoOrdem to = new TipoOrdem();
            foreach (Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem ptipoOrdem in pfrom)
            {
                switch (ptipoOrdem)
                {
                    case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Mercado:
                        to = TipoOrdem.Mercado;
                        break;
                    case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Casada:
                        to = TipoOrdem.Casada;
                        break;
                    case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Administrada:
                        to = TipoOrdem.Administrada;
                        break;
                    case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Discricionaria:
                        to = TipoOrdem.Discricionaria;
                        break;
                    case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Limitada:
                        to = TipoOrdem.Limitada;
                        break;
                    case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.Financiamento:
                        to = TipoOrdem.Financiamento;
                        break;
                    case Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem.OnStop:
                        to = TipoOrdem.OnStop;
                        break;


                }
                retorno.Add(to);
            }
            pTo = retorno;


        }

    }
}